The Internet is operable to communicate content, such data or data document, between clients and servers. The client, via the Internet, accesses the content from one or more servers (for example a web server). There are two kinds of content that may be accessed, static content and dynamic content. Static content generally does not change once it is written. The static content can only be replaced. For example, the content presenting daily news stories can only changes when replaced by other news stories. When the client requests a news story, the web server returns a response, for example, a hypertext markup language (html) page or a deck, containing the requested news story. Dynamic content generally contains fields presenting data which change based upon request. For example, a telephone lookup service, wherein, the client requests a telephone number from the server, the server returns an html page containing the phone number.
The Internet started as a large collection of static content, wherein, the content was provided by organizations publishing information for clients to access. Today static content continues to represent the vast majority of the content available on the Internet.
As the science of the Internet has evolved over the past several years, so has the demand for dynamic content, which provides personalization. Today, there is an increase in the number of servers (or sites) that provide dynamic content. The traditional Internet applications providing dynamic content generally deal with providing content for a particular client on a device such as a standard computer. Traditionally, the authors of dynamic content providers have been concerned with only two clients, Netscape Navigator™ and Explorer™ by Microsoft. Typically, the content is created statically and unique to each client, thereby creating two copies of the content stored on the server. This poses a problem, especially as the Internet evolved into a wireless communication system having n-number of clients and n-number of devices. Furthermore, each device may have n-number hardware restrictions. Using the traditional approach, the authors (or the developers) of the content would have to create n×n×n number of copies of each content. Managing the dynamic content using the traditional approach is time consuming and provides a slower response to the clients. The authors, therefore, have limited themselves to providing content for common platforms, thereby limiting personalization to certain clients and clients on non-standard devices.
It would be useful to have a system that allows the authors to create dynamic content independent of client, and that renders data into a presentation format through several stages and personalizes the content based on the client's device, browser type, and user preferences of the client.